Reference is made to Application Ser. No. 09473542 entitled A METHOD AND SYSTEM FOR RETURNING A NON-SCALE BASED WEIGHT, assigned to the assignee of this application and filed on even date herewith.
The present invention relates generally to the field of mail piece and/or parcel weighing and processing in a network; and, more specifically, to the field of determining the weight of an item for mailing or shipping through the use of an applied database in an internet or intranet data processing environment. The utilization of a trainable database to determine weight is further coupled with the ability of the system to access carrier rating and related functionality so as to provide convenient desktop shipping capability.
As the capabilities of data processing systems has grown, so too have the requirements that are tasked to these systems. Greater speed in these systems has given rise to more detail-oriented applications. Greater memory capability has made memory intensive applications more attractive, and detailed applications have lead to more wide-spread use of previously inaccessible data processing abilities. With the spiraling growth in data processing ability, there has grown a need for more efficient ways of programming that promote speed as well as flexibility. Flexibility, in particular, allows applications that have been designed in varied programming languages, or operating on different platforms to be able to communicate without extensive system or file modification.
One such means of promoting flexibility within a data processing system is the use of xe2x80x9cobject-orientedxe2x80x9d design (OOD). Object oriented programming languages are useful in removing some of the restrictions that have hampered application design due to the inflexibility of traditional programming languages.
OOD utilizes a basic element or construct known as the xe2x80x9cobject,xe2x80x9d which combines both a data structure and an intended behavior characteristic within the single element. Objects are bundles of data and the procedures which best identify the use of that data. Objects can be specific or conceptual and are often used to represent models of real-world object groupings; this has the effect of helping software applications become an organized collection of discrete objects in which data is held or moved based on the intended behavior of an object which is inherently unique. Each object knows how to perform some activity.
The objects interact and communicate with each other via messages. A message is initiated by one object for the purpose of getting a second message to perform an act such as performing the steps of a method. Information parameters may be passed along with the message so that the receiving object will have guidelines for performing its action.
Software objects share two characteristics; they all have xe2x80x9cstatexe2x80x9d and xe2x80x9cbehavior.xe2x80x9d State is the condition of the object expressed in variables (what it knows), while behavior is implemented by performance of a method (what it can do). Packaging the object""s variables, together with its methods, is referred to as xe2x80x9cencapsulation.xe2x80x9d Encapsulation is used to hide unimportant implementation details from other objects; and, this in turn provides two primary benefits to software developers. These benefits are: (1) modularity and (2) information hiding.
Modularity of objects means that the source code for an object can be written and maintained independently of the source code for other objects, thus allowing a certain autonomy of purpose for each individual object. Information hiding, on the other hand, is the ability to keep private certain of its data and methods without effecting the other objects which may depend upon it. Common dependencies among objects can maintain communication by utilizing a public interface for information sharing.
Objects interact and communicate with each other though the use of messages. Each message has three components that are necessary for a receiving object to be able to perform a desired method; these are: (1) the object to whom the message is addressed; (2) the name of the method that is to be performed; and (3) the method required parameters. Because these three components alone represent what is required for methods to be activated, it is not required that objects be located within the same process in order for communication to take place. Message use, therefore, is the supporting means for object interaction. But to be of value to a particular application, objects must be able to be referenced.
Referencing is accomplished through indexing, addressing, or through value assignment which can be placed in a table for use as required. Objects can also be arranged by classification. Classification is based on groupings of objects based upon properties or characteristics important to an application or requirement. Each class describes a potentially infinite set of objects that comprise that class. Object interaction can be further optimized by the use of class distinction. Classes are organizational blueprints that define the variables and methods which are common to all objects of a particular group. Values for each of the variables are assigned and allocated to memory when an instance from a class is created. Additionally, methods can only be performed when a class instance has been allocated to memory. Thus, the most distinct advantage of class use is the ability to reuse the classes and thus further create more objects. Classes, in turn, can be subdivided into subclasses which inherit the state of the underlying class. The further advantage being the ability to create specialized implementations of methods.
The constant growth and expansion of software systems and the hardware platforms that support them has led to the emergence of object oriented programming which reduces time and memory capacity requirements by taking advantage of certain redundancies by treating them as unique software objects.
The advantages of objects lie in the ability of objects to link performance characteristics. This greatly optimizes the using system""s ability to find data and use it effectively. Systems that utilize formats whose structure and requirements repeat, would benefit greatly from object oriented techniques. And, if the system were to be able to define its principle data requirements in the form of objects, it would inherit the advantages of the object oriented environment while maintaining the inherent system advantages.
OOD is known in the software arts and specific discussion of application design based upon OOD is not required for a thorough understanding of the applicant""s claimed invention. It is, however, one object of the present claimed invention to disclose a method and system for utilizing object oriented design to effectively and efficiently link shipping, rating, and database search applications within a data processing system.
The technology afforded by faster and more memory-laden personal computer (PC) based data processing systems has allowed more and more functionality to get to the desktop. Desktop computing, followed by desktop publishing were among the first applications to reap the benefits of increased desktop capabilities. At present, the advances in the development of memory devices, such as hard disk drives, have allowed greater access to routine-intensive software that allows desktop users to produce work product that was being handled by mid-frame computers in the recent past.
The extensive development and advances that have guided the growth of the personal computer and its related systems has run a parallel course over the past decade with the explosive growth of the internet. Systems that can utilize the internet effectively provide their users with greater desktop power by accessing data that was previously unavailable or available only through traditional research vehicles. Thus, personal computing power has grown explosively.
As personal computing power has grown, so to has the variety of business related applications that have come to the desktop. Desktop publishing has allowed quality brochures to be produced in-house rather than at a commercial print shop. The internet has allowed engineers to interactively participate in projects and research, despite the separation of miles. And, activities such as mail piece production and parcel shipping have found their way to the desktop as well.
Mail piece production, in the business environment, has traditionally been a product of several departments. Accounting produces a billing that is stuffed into envelopes; the envelopes are weighed as they are fed to a postage meter; and, a postage meter prints postage to the individual envelopes as a function of the weight and postal rate tables. This basic sequence is still the way that businesses produce billings on a month-to-month basis. However, the steps between printing of the mail piece contents, stuffing of the envelopes, weighing, and printing of a postage indicia have become quicker, more streamlined, and more accessible.
Parcel shipping, though following a different sequence of steps than mail piece production, also has benefitted from desktop production efficiencies. Labels can be printed at the desktop, weighing scales are interconnected to PCs for inputting weight to a parcel shipping application, and manifests for recording the details of parcel pickup and delivery are printed at the desktop as well. Peripherals such as scanners and other input devices can also be added for increased data delivery.
Mailing and shipping applications still rely on an important piece of data in determining the cost of shipment; that piece of data is weight. Programs have been developed that print postage to an envelope at the desktop, but these programs still require a weighing device to input that parameter into an algorithm that will determine the proper postage rate to be applied when producing a postage indicia. An exception to a weight-based need is when the postage is set at a constant value and the weight of the mail piece is estimated; this exception is particularly susceptible to human error because of the estimation involved. Parcel shipping, in particular, is tied to the weight parameter in determining a cost for shipping a parcel because of the profusion of services available from individual carriers and the fact that parcels tend to be of varied weight and size.
Some developed technology has attempted to eliminate the need for utilizing a weighing scale for inputting the weight parameter in determining postage charges. One such method and system has been disclosed in U.S. Pat. No. 5,983,209 for a SYSTEM AND METHOD FOR DETERMINATION OF POSTAL ITEM WEIGHT BY CONTEXT issued Nov. 9, 1999 to Salim G. Kara (hereinafter referred to as Kara). In Kara, parameters are input into the system that are associated with the context in which the mail piece is generated; the parameters can be manually input or can be input by the application which is generating the associated mail piece.
One drawback to Kara is the flexibility of the disclosed system. Kara is specifically drawn to xe2x80x9cpostal itemsxe2x80x9d and thus does not address the issues associated with carrier management systems that require more varied input in addition to performing rate shopping among multiple carriers. Kara, though providing access to a resident database for determining component weights in calculating postage values does not provide a means of accessing non-resident databases; nor does Kara provide a means for training its resident database so as to provide a greater range of rating variables.
Another example of parameter-based charging for mail piece production is disclosed in U.S. Pat. No. 5,873,073 for a METHOD AND SYSTEM FOR MAIL PIECE PRODUCTION UTILIZING A DATA CENTER AND INTER-RELATED COMMUNICATION NETWORKS issued Feb. 16, 1999 to Bresnan et al. (hereinafter referred to as Bresnan). Bresnan discloses a method for producing finished mail pieces wherein the characteristics of the mail piece are input at a first node and the individual mail pieces are produced at a second or subsequent nodes. A cost is associated with each parameter that defines production of the mail piece and a total cost for the production is calculated.
Bresnan provides for building a final cost, akin to the postal value as determined by Kara, but does not address the issue of bringing the full parcel shipping application to the desktop; rather, Bresnan serves as a means of remote production.
Based on the aforementioned needs in the art, it is an object of the present invention to provide a means of reducing reliance on weighing scales, to the extent of even eliminating their use, by supplying a weight parameter to shipping and parcel manifest applications. It is a further object of the present invention to utilize the quickly expanding capabilities and information resources of the internet to provide a weight parameter to shipping applications and parcel processing routines. Additionally, it is a further object of the present invention to provide input to a trainable database that will further reduce reliance on input from a weighing scale.
According to the invention, the object is achieved and the disadvantages of the prior art are overcome by a method and system for non-scale based weight for use as an input in a shipping application.
The method of the invention is based upon establishing a trainable weights database in a data processing system having a shipping application. The method comprises several steps that begin with establishing a product database responsive to a weight determination routine in the shipping application. The weight of a parcel to be shipped is determined by comparing a first data entry at the shipping application with a set of data entries resident in the product database to determine a weight. If the comparison determines a weight, then the weight is returned to the shipping application; however, if the comparison does not return a weight, then a weight is determined by selecting an input option from among a set of weight input options. The determined weight is then input to the trainable weights database in respect of a set of parameters resident in the first data entry so that the determined weight can be used for subsequent transactions. The set of weight input options further comprises an auto search mode resident in the database functionality. The auto search mode performs a search, utilizing one or more search engines, based upon a set of instructions entered into the auto search mode by a system operator and established in a search routine set-up mode, which covers a network area for the purpose of returning a weight to the trainable database. If the auto search mode returns a weight, than the weight is inserted into the database for future use; however, if the auto search mode does not return a weight, then a next action is performed in respect of the instructions.
The data comparison step further comprises the steps of entering a description of the parcel to be shipped wherein the description comprises a first set of data that describes a set of contents of the parcel. The description is parsed to determine whether or not a subset of the set of data comprises a known symbology description such as UPC, or known bar code configuration. If the subset comprises a known symbology description, then the method matches the known symbology description with a locator function in the trainable weights database to locate a second set of data descriptive of the weight of the parcel to be shipped. However, if the subset does not comprise the known symbology description, then the description is further parsed into match fields.
The trainable weights database is linked to a rating server for determining a rate for shipping the parcel wherein the rate is determined by applying the weight to a carrier rate database, selecting one or more parameters that define a mode of shipment for the parcel, and determining the rate in respect of the weight and the mode of shipment. The one or more parameters defining the mode of shipment can comprise a class of service, a delivery date, or a destination zone.
The match fields further comprise fields describing: a set of dimensions for the set of contents of the parcel; a set of components of the parcel contents; or, a level of quality of the parcel contents.
The system of the present invention includes a trainable weights database residing in a data processing system having a shipping application. The system comprises data entry means for entering a set of data relative to the parcel into the data processing system. The system further comprises a set of one or more databases for saving and/or recording data relative to the products and components thereof that together form the parcel to be shipped. In addition, parsing means for parsing the set of data into data fields, together with a weight search functionality for performing a search for a weight relative to the parcel are included. If a weight is located, then the weight is returned to the shipping application for entry into a rate determining routine wherein the weight determining routine determines a rate to be charged for shipment of the parcel; and, if the weight is not located, then a weight is requested and returned via alternative weight determining means.
The resident search functionality can be an internal weight search functionality for performing the search within the set of one or more databases, can be an external weight search functionality for performing the search via a link to a network resource, or can be both. The network resource can be an internet link or an intranet link.
The alternative weight determining means can be: via interpolation of weights for elements having similar characteristics to that of the parcel contents; via entry of the weight from a weighing scale; via the data entry means; or, may be an input from an external weights database.
The method of creating a weight database training object, in an object oriented development environment of a data processing system, is an important aspect of the present invention. The method begins by establishing an object creation function within the data processing system and then registering a class within the data object creation function and naming the class. The instantiation establishes a programming interface to the weight database training object. The properties of the weight database training object are established by placing a set of object methods within the weight database training object by utilizing the programming interface, then placing internal weight search functionality within the weight database training object by utilizing the programming interface. Another step places external weight search functionality and a set of weight data tables within the weight database training object by utilizing the programming interface. A human interface, for allowing data to be displayed to a system operator under direction from the object methods, is also established and placed within the weight database training object by utilizing the programming interface.
The set of weight data tables further comprises: a plurality of symbology coded data; rules for use of weight field data; error messages; and, suggestions for alternate paths of movement within the data processing system. The set of object methods comprises action instructions which may include: display instructions for instructing the data processing system to display data on the display means; storage instructions for instructing the data processing system to store data; and, printing instructions for instructing the data processing means to print data on the output means.
Internal weight search functionality includes: a weight search engine which comprises a set of rules for applying weighting to database field tables so as to determine a weight contained within the weights database; a set of coding tables for storing UPC or similar barcode data; and a second set of coding tables for storing manufacturer and product coding. The internal weight search functionality further includes lookup instructions for looking up a UPC or similar code within a set of coding tables. The lookup is based upon a comparison of a portion of the UPC or similar symbology, entered into a data field of the host application by scanning or other data entry means, with a corresponding product field listed within the set of coding tables.
The external weight search functionality, on the other hand, provides for weight search instructions and rules for the conduct of the search (purpose of search, timing, length of search, extent of search, etc.); and, includes sets of instructions for parsing the returned weight field into sub-fields. Additionally, the external weight search functionality allows the weight database training object to separate unnecessary data from required weight data; this allows the creation of additional weight tables or the continuous training of the weights database to be conducted.
The method of utilizing the weight database training object, in a data processing system having a parcel shipping application, is of particular utility. The method comprises the steps of: creating a shipping document within the parcel shipping application; determining that the entry of a weight field is required within the shipping document (entry of the weight field further comprises a set of instructions for invoking the weight database training object); entering, through input means (such as a key board or scanner), the weight field into said shipping document; and, invoking the weight database training object, whereby the weight database training object performs weight determination to determine a weight to enter into a weight field of the shipping document and transmitting the weight to rate determination functionality for use in calculating a rate to be charged for shipping the parcel by a carrier. The transaction can be downloaded to output means (such as a manifest or label printer), in whole or in part, for subsequent report production.